package com.jyw.business.ins.domain.vo.web;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyw.common.annotation.Conversion;
import com.jyw.common.constant.SysDictTypeConstant;
import com.jyw.common.enums.ConversionType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.FieldNameConstants;

import java.time.LocalDate;

/**
 * @author Created by ZhangCheng on 2023/09/28
 */
@Data
@ApiModel("巡检计划单元分页查询返回实体")
@FieldNameConstants
public class InsPlanUnitPageVO {

    /**
     * 单元ID
     */
    @ApiModelProperty("单元ID")
    private Long id;

    /**
     * 巡检计划ID
     */
    @ApiModelProperty("巡检计划ID")
    private Long planId;

    /**
     * 单元名称
     */
    @ApiModelProperty("单元名称")
    private String unitName;

    /**
     * 单元编号
     */
    @ApiModelProperty("单元编号")
    private String unitCode;

    /**
     * 巡检周期（1每天 2每周 3每月 4每季度 5每半年 6每年）
     */
    @ApiModelProperty("巡检周期（1每天 2每周 3每月 4每季度 5每半年 6每年）")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.INS_PLAN_INSPECTION_CYCLE,
            name = InsPlanUnitPageVO.Fields.inspectionCycleName)
    private Integer inspectionCycle;

    /**
     * 巡检周期
     */
    @ApiModelProperty("巡检周期")
    private String inspectionCycleName;

    /**
     * 生效开始日期
     */
    @ApiModelProperty("生效开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate effectiveStartDate;

    /**
     * 生效结束日期
     */
    @ApiModelProperty("生效结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate effectiveEndDate;

    /**
     * 是否启用（1是 0否）
     */
    @ApiModelProperty("是否启用（1是 0否）")
    private Boolean isEnable;

    /**
     * 巡检计划状态（1已启用 2已停用 3已失效 4未配置）
     */
    @ApiModelProperty("巡检计划状态（1已启用 2已停用 3已失效 4未配置）")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.INS_PLAN_PLAN_STATUS,
            name = InsPlanUnitPageVO.Fields.planStatusName)
    private Integer planStatus;

    /**
     * 巡检计划状态名称
     */
    @ApiModelProperty("巡检计划状态名称")
    private String planStatusName;
}
